package datei;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;


import fachlogik.Produkt;
import fachlogik.Shop;
import fachlogik.ShopException;
import fachlogik.ShopImSpeicher;

public class ShopMitDateiAnbindung extends ShopImSpeicher
{
	protected List<Produkt> produktListe = new ArrayList<>();
	protected File datei;
	
	
	

	public ShopMitDateiAnbindung(File datei) throws ShopException
	{
		super();
		this.datei = datei;
		if (datei.exists())
		{
			try (ObjectInputStream input = new ObjectInputStream(new FileInputStream(datei)))
			{
				produktListe = (List<Produkt>) input.readObject();
			} catch (IOException e)
			{
				throw new ShopException("Fehler beim Lesen der Datei", e);
			} catch (ClassNotFoundException e)
			{
				throw new ShopException("Konfigurationsfehler", e);
			}
		}
	}

	


	@Override
	public void beenden() throws ShopException
	{
		try (ObjectOutputStream output = 
				new ObjectOutputStream(new FileOutputStream(datei)))
		{
			output.writeObject(produktListe);
		} catch (IOException e)
		{
			throw new ShopException("Fehler beim Einlesen der Datei", e);
		}
		
	}

}
